/**   
* @Title: CrmServiceImpl.java 
* @Package com.kerrykidz.filemanagement.service.impl 
* @Description: 
* Copyright: Copyright (c) 2014 
* Company:wuwh team by iss
* @author: Tik   
* @date: 2014年9月4日 下午4:23:29 
* @version: V1.0
*
*/
package com.kerrykidz.filemanagement.service.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.kerrykidz.filemanagement.service.ICrmService;
import com.kerrykidz.filemanagement.vo.CrmVO;
import com.kerrykidz.membership.dao.mapper.CusMemBlackEntityMapper;
import com.kerrykidz.membership.dao.mapper.CusMemEntityMapper;
import com.kerrykidz.membership.dao.model.CusMemBlackEntity;
import com.rdp.framework.exception.RDPException;

/** 
 * @ClassName: CrmServiceImpl 
 * @description: 大致描述该类的用途，内容简短易懂 
 * @author: Tik 
 * @date: 2014年9月4日 下午4:23:29 
 * @version: V1.0
 *
 */
@Service
public class CrmServiceImpl implements ICrmService {

	@Autowired
	private CusMemEntityMapper memMapper;
	@Autowired
	private CusMemBlackEntityMapper blackMapper;
	/**
	 * 查询会员活跃度
	 * @param vo
	 * @return
	 * @throws RDPException
	 * @date: 2014年9月4日
	 */
	@Override
	public List<CrmVO> findLiveness(CrmVO vo) throws RDPException {
		return memMapper.findLiveness(vo);
	}
	
	/**
	 * 查询黑名单信息
	 * @param vo
	 * @return
	 * @throws RDPException
	 * @date: 2014年9月9日
	 */
	@Override
	public List<CrmVO> findBlackList(CrmVO vo) throws RDPException {
		return memMapper.findBlackList(vo);
	}

	/**
	 * 查询VIP信息
	 * @param vo
	 * @return
	 * @throws RDPException
	 * @date: 2014年9月9日
	 */
	@Override
	public List<CrmVO> findVip(CrmVO vo) throws RDPException {
		return memMapper.findVip(vo);
	}
	
	/**
	 * 设置黑名单
	 * @param memberIds
	 * 	要置黑的名单列表
	 * @return
	 * @throws RDPException
	 * @date: 2014年9月11日
	 */
	public void cancelBlack(String[] memberIds, String userId) throws RDPException {
		CusMemBlackEntity black = new CusMemBlackEntity();
		for (String fkMemId : memberIds) {
			black.setFkMemId(fkMemId);
			black.setIsBlack("0");
			black.setModiBy(userId);
			blackMapper.updateEntityByMembId(black);
		}
	}

	/**
	 * 查询客户统计报表
	 * @param vo
	 * @return
	 * @throws RDPException
	 * @date: 2014年9月16日
	 */
	@Override
	public List<CrmVO> findCusTotal(CrmVO vo) throws RDPException {
		String sqlSelect = "";
		String sqlGroupby = "";
		if ("1".equals(vo.getChkCountry())) {
			sqlSelect += ",COUNTRY_DESC";
			vo.setSqlFrom(" left join gbl_cus_c_country cty on MEM.COUNTRY=cty.PK_COUNTRY_ID");
			sqlGroupby += ",COUNTRY_DESC";
		}
		if ("1".equals(vo.getChkAge())) {
			sqlSelect += ",TIMESTAMPDIFF(YEAR,MEM.BIRTHDAY,NOW()) agePage";
			sqlGroupby += ",agePage";
		}
		if ("1".equals(vo.getChkSex())) {
			sqlSelect += ",MEM.SEX";
			sqlGroupby += ",SEX";
		}
		if ("".equals(sqlGroupby)) {
			// 未选=所有
			vo.setSqlSelect(" ,COUNTRY_DESC, TIMESTAMPDIFF(YEAR,MEM.BIRTHDAY,NOW()) agePage, MEM.SEX");
			vo.setSqlFrom(" left join gbl_cus_c_country cty on MEM.COUNTRY=cty.PK_COUNTRY_ID");
			vo.setSqlGroupby(" COUNTRY_DESC, agePage, SEX");
		} else {
			vo.setSqlSelect(sqlSelect);
			vo.setSqlGroupby(sqlGroupby.substring(1));
		}
		return memMapper.findCusTotal(vo);
	}

}
